1. Field of the Invention
The invention concerns an object-based architecture of software components for extending the functional and communication capabilities of existing network devices in a network environment. Specifically, the invention utilizes modular software components to provide a virtual device for extending the functional capability of a network device in order to support enterprise applications.
2. Description of the Related Art
Typically, computing network environments are comprised of numerous network elements, such as workstations and servers, in addition to several types of network devices, such as network printers, network scanners, and the like. For example, a network enterprise may consist of several different network servers and a large number of network devices, such as network printers and network scanners, wherein the functional capabilities of each network device are accessible to the users of the network enterprise through workstations on the network.
The accessibility to the functionality of the various network devices allows each user on the network to utilize the network devices as if they were local peripheral devices to the user's workstation. In this manner, the servers, workstations and other network devices on the network all communicate via the network using a common network protocol, such as TCP/IP, in order to make themselves visible for access and use by other network elements.
The architecture of such a network enterprise facilitates the implementation of enterprise-wide functionality for managing and/or utilizing the capabilities of the network devices on the network. For example, many different enterprise applications have been developed for use in network environments which provide functionality to efficiently use and communicate between the various network elements in a coordinated fashion. An enterprise application may be executed within a single server or computing device on the network, or may be processed in a distributed manner among several servers and/or computing devices on the network. For example, an enterprise e-mail application may be implemented in a server on a network to facilitate e-mail communication among all network elements in the network enterprise. Accordingly, an e-mail client containing the appropriate e-mail functionality is typically provided in each workstation in order for the workstations to functionally support the enterprise e-mail enterprise. Other examples of enterprise applications include, but are not limited to, network management applications for controlling network configurations and settings of the network elements, policy management applications for managing the use of the network elements, job accounting management applications for tracking the use of the network elements, and security applications for ensuring secure use of the network elements.
A growing trend among developers of network devices, such as printers and scanners, is to include enterprise application client functionality in the network device, thereby allowing the network device to support the corresponding enterprise applications on the network. Accordingly, it can be appreciated that new network devices are being developed to include embedded functional capability to not only support existing enterprise applications, such as e-mail, but also to support developing enterprise applications, such as policy management and security applications. In this manner, the users of the network, such as a user at a workstation on the network, will have the benefit of accessing and utilizing increased functional capabilities of the network devices, such as e-mail printing to a network printer, through the use of enterprise applications.
As new network devices are added to the network which include the functional capability to support enterprise applications, the network environment becomes a heterogeneous environment of newer network devices which support enterprise applications and of legacy devices that are not capable of supporting such enterprise applications. In addition, even among those newly-added network devices which have the capability to support enterprise applications, there is likely to be a disparity of the type and level of embedded functional capability to support the various enterprise applications. For example, a newly-added network printer may have the embedded functionality to support an enterprise e-mail application and a network management application, whereas another newly-added network printer may only support the enterprise e-mail application in a limited fashion and may not support the network management application at all.
In addition to lacking the capability to support enterprise applications, many of the network devices, especially the legacy network devices, may only support limited sets of communications protocols, thereby inhibiting their ability to communicate with other network devices which utilize other communication protocols. Accordingly, it can be appreciated that existing, and particularly newly-developed, enterprise applications may have limited overall support within the network enterprise because of the limited number of network devices that have the embedded functional capability to support such enterprise applications. In addition, the functional capabilities of some network devices which utilize particular communications protocols to access and utilize the functions of other network devices is limited by the network devices which cannot support such protocols.
It is therefore desirable to maintain a network enterprise in which all network devices support each of the enterprise applications and communication protocols available across the network enterprise. This implementation of this goal is restricted, however, by the limited capabilities of legacy network devices in the network enterprise, and also by the disparate functional capabilities of newly-developed network devices. Accordingly, there is a need for extending the functional capabilities of network devices, especially legacy network devices, so as to enable the network devices to have the functional capability necessary to support the desired enterprise applications. In addition, there is a need to extend the communications capabilities of the network devices, especially legacy network devices, to support the desired communication protocols on the network.
One solution to the aforementioned problems is to design and implement a software proxy which can be executed on a computing platform, where the software proxy provides the communication interfaces and functional capabilities to support the desired enterprise applications for the legacy devices. This solution is inefficient and cumbersome, however, because it requires modification of the software proxy every time that support for a new or modified enterprise application is required for the legacy network devices. Accordingly, a consistent scheme is desired for the functional extension of network devices to support enterprise applications and protocols in an efficient and reliable manner.